/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

const handleAsyncByPromise = (info, time) => {
  return new Promise((resolved, rejected) => {
    const timer = setTimeout(() => {
      resolved(info);
      clearTimeout(timer);
    }, time);
  });
};

Promise.resolve('hello').then(value => {
  return handleAsyncByPromise(value, 10);
}).then(value => {
  return handleAsyncByPromise(value + "lagou", 10);
}).then(value => {
  return handleAsyncByPromise(value + "I ♥ U", 10);
}).then(value => {
  console.log(value);
});